//
// Created by PC on 2023/4/11.
/*
 http://oj.ryipedu.com/problem.php?id=1538
 https://www.luogu.com.cn/problem/P7072
1538: 直播获奖
时间限制 : 1.000 sec  内存限制 : 128 MB

【 题目描述 】
NOI2130 即将举行。为了增加观赏性，CCF决定逐一评出每个选手的成绩，并直播即时的获奖分数线。本次竞赛的获奖率为w%，即当前排名前w%的选手的最低成绩就是即时的分数线。
更具体地，若当前已评出了p个选手的成绩，则当前计划获奖人数为max(1,[P×w%])//向下取整，其中w是获奖百分比，[x]表示对x向下取整，max(x,y) 表示x和y中较大的数。如有选手成绩相同，则所有成绩并列的选手都能获奖，因此实际获奖人数可能比计划中多。
作为评测组的技术人员，请你帮 CCF 写一个直播程序。

【 输入 】
第1行两个正整数n,w。分别代表选手总数与获奖率。
第2行有n个非负整数，依次代表逐一评出的选手成绩。
【 输出 】
只有一行，包含n个非负整数，依次代表选手成绩逐一评出后，即时的获奖分数线。相邻两个整数间用一个空格分隔。

【 样例输入 】
10 60
200 300 400 500 600 600 0 300 200 100
【 样例输出 】
200 300 400 400 400 500 400 400 300 300
 解析
 https://blog.csdn.net/yaozhiyuannb/article/details/126550710
 */


#include <iostream>
using namespace std;

int main()
{
    int x, a[605] = {0}, n, w, sum;
    cin >> n >> w;//输入人数和获奖率
    for (int i = 1; i <= n; i++)
    {//循环输入
        cin >> x;//输入分数
        a[x]++;//将得x分的人加一
        sum = 0;//先将获奖的人数置为0
        for (int j = 600; j >= 0; j--)
        {//计算最后一名获奖的人考了多少分
            sum += a[j];//从高到低计算人数
            if (sum >= max(1, i * w / 100))
            {//直到获奖的人数足够
                cout << j << ' ';//输出最后一个获奖的分数
                break;//提前结束循环
            }
        }
    }
    return 0;
}
